Encoding / decoding method and apparatus using a tree structure

ABSTRACT

An apparatus for encoding image information using a tree structure performs a method by: encoding a partition flag indicating whether each node, starting from a node of an uppermost layer of the tree structure, is divided into nodes of a lower layer; encoding image information of a block corresponding to a node which is not further divided; and encoding additional information including first information on a minimum block size and second information on a difference between the minimum block size and a maximum block size, wherein the first and second information are used for identifying the maximum block size corresponding to the node of the uppermost layer.

CROSS-REFERENCE TO RELATED APPLICATIONS

This present application is a continuation of U.S. patent applicationSer. No. 13/514,537, filed on Aug. 2, 2012, which is the National Phaseapplication of International Application No. PCT/KR2010/008860, filed onDec. 10, 2010, which designates the United States and was published inKorean. Further, this application claims the priority of Korean PatentApplication No. 10-2009-0122500, filed on Dec. 10, 2009 and No.10-2010-0126315, filed on Dec. 10, 2010 in the KIPO (Korean IntellectualProperty Office).

TECHNICAL FIELD

The present disclosure relates to an encoding/decoding method andapparatus using a tree structure. More particularly, the presentdisclosure relates to a method and apparatus for improving the encodingefficiency and in turn the video compression efficiency by using a treestructure in the encoding of various pieces of image information and thedecoding of the resultant encoded data.

BACKGROUND

The statements in this section merely provide background informationrelated to the present disclosure and may not constitute prior art.

Current video data compression technologies include H.261, H.263,MPEG-2, MPEG-4, and the like. In encoding images, the existing videocompression technologies divide each image into fixedly sizedmacroblocks which are composed of rectangular 16×16 pixel areas of lumacomponent and rectangular 8×8 pixel areas of chroma component. All ofthe luma and chroma components are spatially or temporally predicted,and the resultant predicted residuals undergo transform, quantization,and entropy coding before they are eventually compressed.

An encoding apparatus by the H.264/AVC compression standard subdivideseach macroblock into blocks of smaller sizes 16×16, 8×8, and 4×4 toperform an intra prediction encoding wherein 16×16 pixel blocks areprocessed in one of four prediction modes and 8×8 pixel blocks and 4×4pixel blocks in one of nine prediction modes. As for an inter predictionencoding, each macroblock may be first divided into blocks of pixelsizes 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, and 4×4. Transform is carriedout in units of 8×8 or 4×4 pixel blocks, and quantization of transformcoefficients utilizes a scalar quantization. In this way, a videoencoding apparatus in the process of intra prediction encoding or interprediction encoding is supposed to encode not only the target images butalso various pieces of information used for the intra predictionencoding and inter prediction encoding.

In addition, there is an outstanding necessity for compressinghigh-resolution videos such as 4K×2K videos, but no such technology hasbeen developed that can effectively compress a large volume ofhigh-resolution videos. Still, as the video size increases and units ofdivision for encoding a large volume of videos increase, moreinformation is necessary for the intra prediction encoding and interprediction encoding, resulting in a reduction in the video compressionefficiency. Therefore, there is a need for technological developmentthat can improve the encoding efficiency and video compressionefficiency.

DISCLOSURE Technical Problem

To solve the above-mentioned problems and meet the need for a developedtechnology, the present disclosure mainly seeks to improve the encodingefficiency and in turn the video compression efficiency by using a treestructure in the encoding of various pieces of image information and thedecoding of the resultant encoded data.

SUMMARY

An embodiment of the present disclosure provides an encoding apparatusfor encoding image information to be coded, including: a tree encoderfor grouping predetermined areas having the image information into aplurality of groups, generating a node value of each layer up to anuppermost layer by determining a minimum value or a maximum value ofinformation to be encoded within grouped areas as information on thegrouped areas, and encoding a difference value between the node value ofeach layer and a node value of an upper layer or a difference valuebetween the node value of each layer and a value determined based on apreset criterion; and an additional information encoder for encodingadditional information, including information on maximum number oflayers, information on number of areas to be grouped, and information onwhether the node value of each layer is determined by a minimum value orby a maximum value among node values of a lower layer.

Another embodiment of the present disclosure provides a decodingapparatus for decoding a bit stream to reconstruct information,including: an additional information decoder for decoding the bit streamto reconstruct additional information, including information on maximumnumber of layers, information on a size of an area of a lowermost layer,and information on whether a node value of each layer is determined by aminimum value or by a maximum value among node values of a lower layer;and a tree decoder for decoding the bit stream by using the additionalinformation to reconstruct a difference value between the node value ofeach layer and a node value of an upper layer or a difference valuebetween the node value of each layer and a value determined based on apreset criterion, adding the reconstructed difference value to the nodevalue of the upper layer to reconstruct the node value of each layer,and reconstructing a node value of a lowermost layer as information tobe decoded.

Yet another embodiment of the present disclosure provides an encodingapparatus for encoding image information to be coded, including: a treeencoder for grouping areas having same information among predeterminedareas having the image information, and encoding one or more of a nodevalue and a flag indicating whether or not a node of each layer isdivided; and an additional information encoder for encoding additionalinformation, including information on maximum number of layers andinformation on a size of area indicated by each node of a lowermostlayer.

Yet another embodiment of the present disclosure provides a decodingapparatus for decoding a bit stream to reconstruct information,including: an additional information decoder for decoding the bit streamto reconstruct additional information, including information on maximumnumber of layers and information on a size of area indicated by eachnode of a lowermost layer; and a tree decoder for decoding the bitstream, based on the additional information, to reconstruct a flagindicating whether or not a node of each layer from an uppermost layerto a lowermost layer is divided, and reconstructing the information byreconstructing a node value of the node of each layer according to thereconstructed flag.

Yet another embodiment of the present disclosure provides an encodingmethod for encoding image information by using a tree structure,including: forming a tree structure in which each layer includes atleast one node, and the node is divided or not divided into the node ofthe lower layer; encoding a flag for indicating whether or not the nodeis divided into a node of a lower layer; and encoding additionalinformation, including information on maximum number of layers andinformation on a size of area indicated by each node of a lowermostlayer.

Yet another embodiment of the present disclosure provides a decodingmethod for reconstructing image information by using a tree structure,including: reconstructing additional information, including informationon maximum number of layers constituting the tree structure andinformation on a size of an area indicated by each node of a lowermostlayer; and reconstructing a flag indicating whether or not each nodeincluded in each layer is divided, based on the additional information,and reconstructing a node value of the node of each layer according tothe reconstructed flag.

Advantageous Effects

According to the present disclosure as described above, the encodingefficiency and in turn the video compression efficiency may be improvedby using a tree structure in the encoding of various pieces of imageinformation and the decoding of the resultant encoded data.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram schematically showing an encoding apparatususing a tree structure according to a first embodiment of the presentdisclosure;

FIG. 2 is an exemplary diagram showing information to be encoded byusing a tree structure according to a first embodiment of the presentdisclosure;

FIG. 3 is an exemplary diagram showing a tag tree of information onareas determined at each layer according to a first embodiment of thepresent disclosure;

FIG. 4 is an exemplary diagram showing bits encoded by using a treestructure according to a first embodiment of the present disclosure;

FIG. 5 is a flowchart showing an encoding method using a tree structureaccording to a first embodiment of the present disclosure;

FIG. 6 is a block diagram schematically showing a decoding method usinga tree structure according to a first embodiment of the presentdisclosure;

FIG. 7 is a flowchart showing a decoding method using a tree structureaccording to a first embodiment of the present disclosure;

FIG. 8 is a block diagram schematically showing an encoding apparatususing a tree structure according to a second embodiment of the presentdisclosure;

FIG. 9A shows areas having the information to be encoded within a singlepicture, FIG. 9B shows the groups of areas having the same informationamong the areas shown in FIG. 9A, and FIG. 9C shows the tree structureof information on the areas grouped as shown in FIG. 9B;

FIG. 10 is an exemplary diagram showing the encoding results ofinformation expressed as a tree structure according to a secondembodiment of the present disclosure;

FIG. 11 is an exemplary diagram showing another scheme for dividing anode into lower layers according to a second embodiment of the presentdisclosure;

FIGS. 12 and 13 are exemplary diagrams showing grouping when informationon areas is distributed in different schemes;

FIG. 14 is a flowchart showing an encoding method using a tree structureaccording to a second embodiment of the present disclosure;

FIG. 15 is a block diagram schematically showing a decoding apparatususing a tree structure according to a second embodiment of the presentdisclosure; and

FIG. 16 is a flowchart showing a decoding method using a tree structureaccording to a second embodiment of the present disclosure.

DETAILED DESCRIPTION

An encoding/decoding method and apparatus using a tree structureaccording to embodiments of the present disclosure will be describedbelow in detail with reference to the accompanying drawings.

According to the embodiments of the present disclosure, the encodingefficiency is improved by using a tree structure in the encoding ofimage information to be encoded and the decoding of the resultantencoded data.

According to the embodiments of the present disclosure, the informationto be encoded may be information on image signals or various pieces ofinformation used for encoding the image signals, such as macroblock sizeand macroblock type information of variably sized macroblocks, partitioninformation indicating the size and type of subblocks for prediction andtransform, intra prediction information, motion vector, motion vectorprediction direction, optimal motion vector prediction candidate,optimal interpolation filters of arbitrarily sized areas, use or non-useof image enhancement filters, reference picture index, quantizationmatrix index, optimal motion vector precision and transform sizeinformation, image pixel information, coded block information orcoefficient information indicating whether or not transform coefficientother than zero exists within a predetermined block.

In addition, predetermined areas may be macroblocks of variable sizes,or may be blocks of various pixel sizes, such as 64×64 pixel blocks,32×32 pixel blocks, 16×16 pixel blocks, 16×32 pixel blocks, or 4×16pixel blocks. Moreover, the predetermined areas may be areas of varioustypes and sizes, such as blocks from which motion vectors aredetermined.

According to the embodiments of the present disclosure, the encoding anddecoding may be applied to entropy coding and entropy decoding but isnot limited thereto and may also be applied to various other encodingand decoding.

FIG. 1 is a block diagram schematically showing an encoding apparatususing a tree structure according to a first embodiment of the presentdisclosure.

An encoding apparatus 100 using a tree structure according to a firstembodiment of the present disclosure may include a tree encoder 110 andan additional information encoder 120.

The tree encoder 110 groups predetermined areas having image informationto be encoded into a plurality of groups, generates a node value of eachlayer up to an uppermost layer by determining a minimum value or amaximum value of information to be encoded within grouped areas asinformation on the grouped areas, and encodes a difference value betweenthe node value of each layer and a node value of an upper layer or adifference value between the node value of each layer and a valuedetermined based on a preset standard.

The term “node value of each layer” means a value of information onareas grouped at each layer. For example, the node value at thelowermost layer may be a value of information on a predetermined area.The node value at an upper layer of the lowermost layer may be a valueof information on areas grouped by predetermined areas. The value of theinformation on the grouped area may be determined by a minimum value ora maximum value among values of information on the predetermined areasincluded within the grouped area. In addition, the value determined bythe preset standard may be a value having the highest occurrenceprobability in the areas encoded till now among the previous area oradjacent areas, but is not limited thereto, and may be a valuedetermined by various standards.

In this case, the tree encoder 110 may encode the difference valuebetween the node value of each layer and the node value of the upperlayer by using various binary coding methods, such as unary code,truncated unary code, and exponential-Golomb (Exp-Golomb) code.Moreover, after binarizing the difference value between the node valueof each layer and the node value of the upper layer by using variousbinary coding methods, such as unary code, truncated unary code, andexponential-Golomb (Exp-Golomb) code, the tree encoder 110 may perform abinary arithmetic coding by determining a probabilistic model forencoding a node value of a layer to be encoded, based on the node valueof the adjacent layer or the upper layer, or by changing a probabilisticmodel at each layer.

In addition, in the event where the node value of each layer isdetermined by the minimum value among the node values of the lowerlayer, the tree encoder 110 skips the encoding of a node value of alower layer than a layer having a maximum node value. That is, in theevent where the node value of each layer is determined by the minimumvalue among the node values of the lower layer, if a certain node valueof a certain layer is a maximum value of the information to be encoded,the tree encoder 110 encodes a node value of a corresponding layer, andskips the encoding on the node values of the lower layer on theassumption that all the node values of the lower layer have the samevalues. On the other hand, in the event where the node value of eachlayer is determined by the maximum value among the node values of thelower layer, the tree encoder 110 skips the encoding on node values of alower layer than a layer having a minimum node value. That is, in theevent where the node value of each layer is determined by the maximumvalue among the node values of the lower layer, if a certain node valueof a certain layer is a minimum value the information to be encoded canhave, the tree encoder 110 encodes a node value of a correspondinglayer, and skips the encoding on the node values of the lower layer onthe assumption that all the node values of the lower layer have the samevalues.

Furthermore, in order to perform the encoding according to theoccurrence probability of the information to be encoded, the treeencoder 110 may assign a small code number or a large code numberaccording to the occurrence probability by changing a code numberassigned to the information to be encoded. In this case, the occurrenceprobability of the information to be encoded may be calculated by usingvarious occurrence probabilities, such as the occurrence probability ofinformation on a predetermined adjacent area, or the occurrenceprobability of information on an area encoded till now within an entireor partial area including the information to be encoded.

In the event where the tree encoder 110 encodes the node value of theuppermost layer, the tree encoder 110 may set the node value of theupper layer of the uppermost layer to a predetermined value because theupper layer of the uppermost layer does not exist, and may encode adifference value between the node value of the uppermost layer and theset predetermined value. In this case, the predetermined value set asthe node value of the upper layer of the uppermost layer may be set byvarious values, such as a value having the highest occurrenceprobability while being encoded till now in an entire or partial areaincluding the information to be encoded, a preset value, and a valuehaving the highest occurrence probability among values of information onpredetermined adjacent areas.

The additional information encoder 120 encodes additional informationused for encoding the information on the predetermined area by using thetree structure according to the first embodiment of the presentdisclosure. The additional information may be information on the maximumnumber of layers, information on the size of area of the lowermostlayer, and information on whether the node value of each layer isdetermined by the minimum value or by the maximum value among the nodevalues of the lower layer. The encoded additional information may beincluded in a header of a predetermined encoding unit, such as asequence header, picture header, or slice header of a bit stream.

The process of encoding the information to be encoded by using the treestructure will be described below in detail with reference to FIGS. 2 to4.

FIG. 2 is an exemplary diagram showing the information to be encoded byusing the tree structure according to the first embodiment of thepresent disclosure and code numbers assigned to the respective pieces ofinformation.

In the case of the inter prediction encoding when an image macroblock isa 64×64 pixel block and is divided into 8×16 pixel subblocks, the motionvector precision determined at each 8×16 pixel subblock is exemplarilyshown in FIG. 2. In this case, the information to be encoded is themotion vector precision of a predetermined area, and the predeterminedarea is an 8×16 pixel subblock.

The encoding may be carried out by using untouched values of data to beencoded, and may also be carried out by assigning code numbers to thedata to be encoded. The method for assigning the code numbers may bemodified in various manners according to the occurrence probability ofdata. The embodiment of FIG. 2 shows an example in which code numbers 1,2 and 3 are assigned to ½ precision, ¼ precision, and ⅛ precision,respectively. The encoding apparatus 100 according to the firstembodiment of the present disclosure may determine the node value ofeach layer by repeating, at each layer, the process of assigning thecode numbers to the motion vector precisions shown in FIG. 2, grouping apredetermined number of predetermined areas in order for the encodingusing the tree structure as shown in FIG. 3, and determining informationon the grouped areas, based on the information included within thegrouped areas.

FIG. 3 is an exemplary diagram showing a tag tree of information onareas determined at each layer according to the first embodiment of thepresent disclosure.

In order for encoding the information to be encoded by using the treestructure as shown in FIG. 2, the video encoding apparatus 100determines the tree structure as shown in FIG. 3 by repeating, up to theuppermost layer, the process of grouping four 8×16 pixel subblocks anddetermining the information on the grouped areas by the minimum value ofinformation included within the respective grouped areas.

Thereafter, the video encoding apparatus 100 encodes additionalinformation used for encoding the information based on the treestructure. The additional information may be information on the maximumnumber of layers in the tree structure, information on the size of areaof the lowermost layer, and information on whether the information onareas grouped at each layer is determined by the minimum value or by themaximum value among pieces of information on the areas of the lowerlayer. Instead of the information on the size of area of the lowermostlayer, information on the number of areas to be grouped may be includedin the additional information and then be encoded. In FIG. 3, as theadditional information, the maximum number of the layers in the treestructure is four, the size of area of the lowermost layer is 8×16pixels, and the information on areas grouped at each layer is theminimum value of pieces of information on the areas of the lower layer.In this case, instead of encoding the size of area of the lowermostlayer as the additional information, “four”, the number of the areas tobe grouped, may be encoded as the encoding information.

Referring to FIG. 3, since the minimum value of the code numbersassigned to the first four areas of the layer 3 is the code number 1indicating the ½ precision, the value of the information on the firstarea of the layer 2 is the code number 1 indicating the ½ precision. Inthis manner, the tree structure as shown in FIG. 3 is determined bygrouping the areas of each layer from the layer 3 to the layer 0 anddetermining the minimum value of pieces of information on the areasincluded within the grouped areas as the value of the information on thegrouped areas.

If the tree structure as shown in FIG. 3 is determined, the encodingapparatus 100 generates code bits from the upper layer to the lowerlayer and encodes the generated code bits. Moreover, since the encodingapparatus 100 knows the maximum value of the information to be encoded,the encoding apparatus 100 may generate a binary bit string by using atruncated unary code.

In this case, the method for encoding the node of each layer encodes adifference value from an upper node value, and the method for encodingthe difference value encodes a binary bit ‘0’ as many as the differencevalue and encodes a binary bit ‘1’ at the end. If there is no differencebetween the value of the current node to be encoded and the value of theupper node, a binary bit ‘1’ is encoded.

More specifically, the method for encoding each node value encodes thedifference value between the value of the current node to be encoded andthe value of the upper node by using the binary bits ‘0’ and ‘1’, exceptfor the following cases (1) to (3). The binary bit ‘0’ is encoded asmany as the difference value only and encodes the binary bit ‘1’ at theend. If there is no difference between the value of the current node tobe encoded and the value of the upper node, the binary bit ‘1’ isencoded. Conversely, the binary bit ‘1’ may be encoded as many as thedifference value and, if there is no difference between the value of thecurrent node to be encoded and the value of the upper node, the binarybit ‘0’ may be encoded.

Upon encoding each node value, in the event where the value of the uppernode is the maximum value the data to be encoded can have, the lowernodes are not encoded because the lower nodes cannot have larger valuesthan the upper node. That is, all the lower nodes have the same value asthe code number of the upper node.

Upon encoding the difference value, in the event where the value of thecurrent node is the value of the data to be encoded or the maximum valuethe code number can have, the binary bit ‘0’ is encoded as many as thedifference value from the upper node, and the binary bit ‘1’ indicatingthe termination of the encoding on the current node is not encoded atthe end. For example, the binary bits ‘00’ are encoded if the maximumvalue the data to be encoded can have is 3 and the value of the uppernode is 1, and the value of the current node to be encoded is 3.

Upon encoding the value of the last node among the nodes each having thesame upper node, in the event where the values of the nodes other thanthe last node are larger than the value of the upper node, the value ofthe last node is not encoded.

Upon encoding the value of the uppermost nodes, the difference valuefrom the value of the data to be encoded or the maximum value the codenumber can have is encoded by using the above-described binary bits 0and 1. Moreover, another method for encoding the value of the uppermostnode may encode the difference value from the code number or data havingthe highest occurrence probability.

FIG. 4 is an exemplary diagram showing encoded bits of the motion vectorprecision of FIG. 2 by using the tree structure according to the firstembodiment of the present disclosure.

FIG. 4 shows bits generated by encoding the information on areas of FIG.2 by using the tree structure and the corresponding areas. The processof encoding the information on areas of FIG. 2 by using the treestructure of FIG. 3 will be described below with reference to FIG. 4. Inthe following encoding process, the node value means the code number.

In the case of the area (0,0), there is no upper layer in the layer 0which is the uppermost layer. Assuming that the ½ precision has thehighest occurrence probability, the node value of the upper layer is setto 1 (½ precision). Therefore, the difference value between the nodevalue of the uppermost layer and the node value of the upper layerthereof is 0. 0 becomes 1 if expressed as a binary bit string. Since thenode value of the area (0,0) in the layer 1 is 1 (½ precision) and thenode value of the upper layer is 1 (½ precision), the difference valuetherebetween is 0. 0 becomes 1 if expressed as a binary bit string.Since the node value of the area (0,0) in the layer 2 is 1 (½ precision)and the node value of the upper layer is 1 (½ precision), the differencevalue therebetween is 0. 0 becomes 1 if expressed as a binary bitstring. Since the node value of the area (0,0) in the layer 3 is 1 (½precision) and the node value of the upper layer is 1 (½ precision), thedifference value therebetween is 0. 0 becomes 1 if expressed as a binarybit string. Therefore, the binary bit string obtained by encoding theinformation on the area (0,0) among the areas shown in FIG. 1 is 1111.

In the case of the area (0,1), since the node values of the layer 0, thelayer 1, and the layer 2 have already been encoded in the process ofencoding the node value of the area (0,0), the node values of the layer0, the layer 1, and the layer 2 are not encoded, and only the node valueof the layer 3 is encoded. Since the node value of the area (0,1) in thelayer 3 is 2 (¼ precision) and the node value of its upper layer is 1 (½precision), the difference value between code numbers is 1. 1 becomes 01if expressed as a binary bit string. Therefore, the binary bit stringobtained by encoding the information on the area (0,1) among the areasshown in FIG. 2 is 01.

In the case of the area (0,4), since the node value of the layer 0 hasalready been encoded in the process of encoding the node value of thearea (0,0), the node value of the layer 0 is not encoded, and only thenode values of the layer 1, the layer 2, and the layer 3 are encoded.Since the node value of the area (0,1) in the layer 1 is 1 (½ precision)and the node value of its upper layer is 1 (½ precision), the differencevalue between code numbers is 1. 1 becomes 01 if expressed as a binarybit string. Since the node value of the area (0,2) in the layer 2 is 2(¼ precision) and the node value of its upper layer is 2 (¼ precision),the difference value between code numbers is 0. 0 becomes 1 if expressedas a binary bit string. Since the node value of the area (0,4) in thelayer 3 is 2 (¼ precision) and the node value of the upper layer is 2 (¼precision), the difference value between code numbers is 0. 0 becomes 1if expressed as a binary bit string. Therefore, the binary bit stringobtained by encoding the information on the area (0,4) among the areasshown in FIG. 1 is 0111.

In the case of the area (2,0), since the node values of the layer 0 andthe layer 1 have already been encoded, the node values of the layer 0and the layer 1 are not encoded, and only the node values of the layer 2and the layer 3 are encoded. Since the node value of the area (1,0) inthe layer 2 is 3 (⅛ precision) and the node value of its upper layer is1 (½ precision), the difference value between code numbers is themaximum value of 2 and the corresponding node value is 3 (⅛ precision).Therefore, the binary bit string generated by the truncated unary codeis 00. Since the maximum value appears, the node values of the lowerlayer of the corresponding node are not encoded.

Likewise, in the case of the area (2,6), since the node values of thelayer 0 and the layer 1 have already been encoded, the node values ofthe layer 0 and the layer 1 are not encoded, and only the node values ofthe layer 2 and the layer 3 are encoded. Since the node value of thearea (0,1) in the layer 2 is 3 (⅛ precision) and the node value of theupper layer is 2 (¼ precision), the difference value therebetween is 1and the corresponding node value is 3 (⅛ precision). Therefore, thebinary bit string generated by a truncated unary code is 0. In thiscase, since the maximum value is appeared, the node values of the lowerlayer are not encoded.

In the case of performing an arithmetic coding, the encoding apparatus100 generates a probabilistic model by using the binary bit string orinformation on adjacent areas and performs an arithmetic coding on thegenerated binary bit string. In the case of performing no arithmeticcoding, the encoding apparatus 100 inserts the generated binary bitstring into the bit stream.

In this manner, the bit stream is generated by encoding the informationexemplarily shown in FIG. 2 by using the tree structure.

Although FIGS. 2 to 4 show an example in which the code numbers 1, 2 and3 are assigned to the ½ precision, the ¼ precision, and the ⅛ precisionand then encoded, different code numbers may be assigned to thedifferent precisions by using the occurrence probability of theinformation on adjacent areas or the already encoded information.

FIG. 5 is a flowchart showing an encoding method using a tree structureaccording to a first embodiment of the present disclosure.

As for the encoding method using the tree structure according to thefirst embodiment of the present disclosure, the encoding apparatus 100groups predetermined areas having image information to be encoded into aplurality of groups, and generates a node value of each layer up to anuppermost layer by determining a minimum value or a maximum value ofinformation to be encoded within grouped areas as information on thegrouped areas (step S510). The encoding apparatus 100 encodes adifference value between the node value of each layer and a node valueof an upper layer (step S520). The encoding apparatus 100 encodesadditional information, including information on the maximum number oflayers, information on the size of area of the lowermost layer, andinformation on whether the node value for each layer is determined bythe minimum value or by the maximum value among the node values of thelower layer (step S530).

The encoding apparatus 100 does not necessarily perform step S530 andmay optionally perform step S530 according to an implementation schemeor necessity. For example, in the event where the encoding apparatus 100and a decoding apparatus, which will be described below, mutually knowone or more of the information on the maximum number of layers, theinformation on the size of area of the lowermost layer, and theinformation on whether the node value of each layer is determined by theminimum value or by the maximum value among the node values of the lowerlayer, the encoding apparatus 100 may not encode the mutually knowninformation and encode only mutually unknown information. If all piecesof information are mutually known in agreement and set up, the encodingapparatus 100 may not encode the additional information.

At step S530, the encoding apparatus 100 may insert information on thenumber of areas to be grouped into the encoding information and encodethe encoding information, instead of the information on the size of areaof the lowermost layer. This is because, if the maximum number of thelayers is determined, the size of area of the lowermost layerdetermining the number of the areas to be grouped may also bedetermined.

At step S520, the encoding apparatus 100 may encode the difference valueby using a binary coding, or may perform a binary arithmetic coding byencoding the difference value by using the binary coding and thenchanging a probabilistic model. In this case, the probabilistic modelmay be determined based on a node value of an adjacent layer or an upperlayer, or may be differently changed at each layer.

At step S520, in the event where the node value of each layer isdetermined by the minimum value among the node values of the lowerlayer, the encoding apparatus 100 may skip the encoding on a node valueof a lower layer of a node having a maximum node value. In the eventwhere the node value of each layer is determined by the maximum valueamong the node values of the lower layer, the encoding apparatus 100 mayskip the encoding on a node value of a lower layer than a layer having aminimum node value.

At step S520, the encoding apparatus 100 may change the code numberassigned to the information to be encoded, in order for performing theencoding according to the occurrence probability of the information tobe encoded.

At the step S520, in the event where the encoding apparatus encodes thenode value of the uppermost layer, the encoding apparatus 100 may setthe node value of the upper layer of the uppermost layer to apredetermined value, and encode a difference value between the nodevalue of the uppermost layer and the set predetermined value.

FIG. 6 is a block diagram schematically showing a decoding apparatususing a tree structure according to a first embodiment of the presentdisclosure.

The decoding apparatus 600 using the tree structure according to thefirst embodiment of the present disclosure may include an additionalinformation decoder 610 and a tree decoder 620.

The additional information decoder 610 decodes a bit stream toreconstruct additional information, including information on the maximumnumber of layers, information on the size of area of the lowermostlayer, and information on whether the node value of each layer isdetermined by the minimum value or by the maximum value among the nodevalues of the lower layer. The tree decoder 620 uses the decodedadditional information to reconstruct the tree structure and reconstructa difference value between the node value of each layer and the nodevalue of the upper layer or a difference value between the node value ofeach layer and a value determined by a preset standard. In this case,the additional information decoder 610 reconstructs the additionalinformation by extracting data with the encoded additional informationfrom a header of the bit stream and then decoding the extracted data.The header of the bit stream may be a macroblock header, a slice header,a picture header, or a sequence header. The value determined by thepreset standard may be a value having the highest occurrence probabilityin areas decoded thus far among the previous areas or adjacent areas,but is not limited thereto, and may be a value determined by variouscriteria.

The additional information decoder 610 is not necessarily included inthe decoding apparatus 600 and may be optionally included according toan implementation scheme or necessity. For example, in the event wherethe encoding apparatus 100 and the decoding apparatus 600 mutually knowthe information on the maximum number of layers, the information on thesize of area of the lowermost layer, and the information on whether thenode value of each layer is determined by the minimum value or by themaximum value among the node values of the lower layer, the encodingapparatus 100 may not encode the additional information, andaccordingly, the decoding apparatus 600 may reconstruct the treestructure by using the preset additional information, withoutreconstructing the additional information by decoding the bit stream.

The tree decoder 620 decodes the bit stream by using the additionalinformation to reconstruct the difference value between the node valueof each layer and the node value of the upper layer or the differencevalue between the node value of each layer and the value determined bythe preset standard. The tree decoder 620 reconstructs the node value ofeach layer by adding the reconstructed difference value to the nodevalue of the upper layer. The tree decoder 620 reconstructs the nodevalue of the lowermost layer as information to be decoded. That is, thetree decoder 620 reconstructs an enhanced tree structure by using theadditional information that is preset or reconstructed by the additionalinformation decoder 610. The tree decoder 620 decodes the bit stream,based on the enhanced tree structure, to reconstruct the differencevalue between the node value of each layer and the node value of theupper layer. The tree decoder 620 reconstructs the node value of eachlayer by adding the reconstructed difference value to the node value ofthe upper layer.

In this case, the tree decoder 620 may reconstruct the difference valuebetween the node value of each layer and the node value of the upperlayer by decoding the bit stream by using various binary decodingmethods, such as unary code, truncated unary code, and Exp-Golomb code.In addition, after decoding the bit stream by using various binarydecoding methods, such as unary code, truncated unary code, andExp-Golomb code, the tree decoder 620 may perform a binary arithmeticdecoding by determining a probabilistic model of a layer to be decodedbased on a node value of an adjacent layer or an upper layer. Moreover,the tree decoder 620 may perform an arithmetic decoding on the bitstream by differently changing a probabilistic model at each layer.

In the event where it is identified that the encoding apparatus 100determines the node value of each layer by the minimum value among thenode values of the lower layer, based on the additional information, thetree decoder 620 skips the decoding on the node values of the lowerlayer than the layer having the maximum node value on the assumptionthat all the node values of the lower layer have the same value. On theother hand, in the event where it is identified that the encodingapparatus 100 determines the node value of each layer by the maximumvalue among the node values of the lower layer, based on the additionalinformation, the tree decoder 620 skips the decoding on the node valuesof the lower layer than the layer having the minimum node value on theassumption that all the node values of the lower layer have the samevalue.

The tree decoder 620 may differently change the code numbers accordingto the occurrence probability of the information to be decoded. That is,the tree decoder 620 may assign a small code number or a large codenumber according to the occurrence probability of the information to bedecoded. The occurrence probability of the information to be decoded maybe calculated by using various methods, such as the occurrenceprobability of information on predetermined adjacent areas, or theoccurrence probability of information that has already been decoded andreconstructed prior to the area having the information to be decoded.

In the event where the tree decoder 620 reconstructs the differencevalue between the node value of the uppermost layer and the node valueof the upper layer thereof, the tree decoder 620 reconstructs only thedifference value on the assumption that the node value of the upperlayer of the uppermost layer has a predetermined value because the upperlayer than the uppermost layer does not exist. In this case, thepredetermined value may be anyone among a value having the highestoccurrence probability while being decoded thus far, a preset value, avalue having the highest occurrence probability among values ofinformation on predetermined adjacent areas, and the like.

The process of reconstructing information by decoding the bit stream byusing the tree structure according to the first embodiment of thepresent disclosure will be described below in detail with reference toFIGS. 2 to 4.

The decoding apparatus 600 extracts data with the encoded additionalinformation from the picture header, slice header, or macroblock headerof the bit stream, and reconstructs the additional information bydecoding the extracted data. In addition, the decoding apparatus 600 mayuse preset additional information. The additional information mayinclude information on the maximum number of layers, information on thesize of area of the lowermost layer, and information on whether the nodevalue of each layer is determined by the minimum value or by the maximumvalue among the node values of the lower layer. The decoding apparatus600 may reconstruct the tree structure as shown in FIG. 3 by using theinformation on the maximum number of the layers and the information onthe size of area of the lowermost layer among the additionalinformation. In this case, the decoding apparatus 600 may reconstructthe tree structure by using the information on the number of areas to begrouped, instead of the information on the size of area of the lowermostlayer. Moreover, the decoding apparatus 600 may reconstruct the treestructure by using both the information on the size of area of thelowermost layer and the information on the number of the areas to begrouped.

If the tree structure as shown in FIG. 3 is reconstructed, the decodingapparatus 600 uses the reconstructed tree structure to decode the bitstream, in which the difference value between the node value of eachlayer and the node value of the upper layer is encoded, as describedabove with reference to FIG. 4.

Since the decoding apparatus 600 already knows the maximum value of theinformation to be decoded, the decoding apparatus 600 decodes the binarybit string by using a truncated unary code. In this case, it may beassumed that the code numbers of the ½ precision, the ¼ precision, andthe ⅛ precision are 1, 2 and 3, respectively. The code number of eachprecision may be differently changed according to the occurrenceprobability of each precision. If the decoding apparatus 600 performs anarithmetic decoding of the binary bit string, the decoding apparatus 600generates a probabilistic model by using the information on adjacentareas or the binary bit string, and generates a binary bit stream by anarithmetic decoding of a next bit stream. If the decoding apparatus 600does not perform an arithmetic decoding of the binary bit string, thedecoding apparatus 600 generates a binary bit string by decoding the bitstream.

Referring to FIG. 4, in the case of the area (0,0), the uppermost layerof the layer 0 has no upper layer thereof. Assuming that the node valueof the upper layer has the ½ precision (the highest occurrenceprobability), if the binary bit string 1 is decoded, the differencevalue between the node value of the uppermost layer and the node valueof the upper layer thereof is 0. In the layer 1, if the binary bitstring 1 is decoded, the difference value from the node value of theupper layer thereof is 0. In the layer 2, if the binary bit string 1 isdecoded, the difference value from the node value of the upper layerthereof is 0. In the layer 3, if the binary bit string 1 is decoded, thedifference value from the node value of the upper layer thereof is 0. Ifadding the node value of each upper layer to the difference valuebetween the node value of each layer and the node value of the upperlayer thereof, the node value of each layer is 1, that is, the ½precision. Therefore, the reconstructed information of the area (0,0) isthe ½ precision.

In the case of the area (0,1), since the layer 0, the layer 1, and thelayer 2 have already been decoded in the process of reconstructing theinformation on the area (0,0), no additional decoding is carried outthereon. In the layer 3, if the binary bit string 01 is decoded, thedifference value from the node value of the upper layer thereof is 1.Therefore, the reconstructed information of the area (0,1) is 2, whichmeans the ¼ precision.

In the case of the area (2,0), since the layer 0 and the layer 1 havealready been decoded in the process of reconstructing the information onthe area (0,0), no additional decoding is carried out thereon. In thelayer 2, since the node value of the upper layer is 1 (½ precision), itcan be known that the difference value from the node value of the upperlayer is the maximum value, that is, 2. Therefore, if the binary bitstring 00 is decoded by a truncated unary code, the reconstructedinformation of the area (2,0) is the ⅛ precision.

Likewise, in the case of the area (2,6), since the upper layer in thelayer 2 is the ¼ precision, it can be known that the maximum value ofthe difference value is 1. If the binary bit stream 0 is decoded by atruncated unary code, the difference value from the upper layer is 1 andthe reconstructed information of the area (2,6) is the ⅛ precision. Inthis case, since the maximum value is appeared, the node value of thelower layer is not decoded and is determined as the ⅛ precision.

In the above-described example, the decoding is carried out on theassumption that the code numbers 1, 2 and 3 are assigned to the ½precision, the ¼ precision, and the ⅛ precision, respectively. However,the code numbers may be differently changed at each precision by usingthe information on adjacent areas or the occurrence probability of thedecoded and reconstructed information.

FIG. 7 is a flowchart showing a decoding method using a tree structureaccording to a first embodiment of the present disclosure.

As for the decoding method using the tree structure according to thefirst embodiment of the present disclosure, the decoding apparatus 600decodes a bit stream to reconstruct additional information (step S710).That is, the decoding apparatus 600 extracts data with the encodedadditional information from a header of a predetermined encoding unit,such as a picture header, slice header, or macroblock header of the bitstream, and reconstructs the additional information by decoding theextracted data. The additional information may include information onthe maximum number of layers, information on the size of area of thelowermost layer, and information on whether the node value of each layeris determined by the minimum value or by the maximum value among thenode values of the lower layer.

The decoding apparatus 600 does not necessarily perform step S710 andmay optionally perform step S710 according to an implementation schemeor necessity. For example, in the event where the encoding apparatus 100and the decoding apparatus 600 in mutual agreement preset all pieces ofinformation included in the additional information, the encodingapparatus 100 may not encode the additional information, andaccordingly, the decoding apparatus 600 may decode the bit stream byusing preset additional information. In the event where just part ofinformation included in the additional information is set by aprearrangement between the encoding apparatus 100 and the decodingapparatus 600, the encoding apparatus 100 may encode only the mutuallyunknown information, and the decoding apparatus 600 may decode the bitstream to reconstruct only the mutually unknown information. Thereconstructed information and preset other information may be used forthe decoding.

The decoding apparatus 600 decodes the bit stream to reconstruct thedifference value between the node value of each layer and the node valueof the upper layer (step S720). That is, the decoding apparatus 600reconstructs an enhanced tree structure by using the additionalinformation reconstructed at step S710 or the preset additionalinformation, and reconstructs the difference value between the nodevalue of each layer and the node value of the upper layer by decodingthe bit stream by using the reconstructed enhanced tree structure.

The decoding apparatus 600 reconstructs the node value of each layer byadding the reconstructed difference value to the node value of the upperlayer (step S730), and reconstructs the node value of the lowermostlayer as the information to be decoded (step S740).

At step S720, the decoding apparatus 600 may reconstruct the node valueof each layer by decoding the bit stream by using the binary decodingmethod, or may reconstruct the node value of each layer by decoding thebit stream by using the binary decoding method and then performing abinary arithmetic decoding by changing a probabilistic model. Theprobabilistic model may be determined based on a node value of anadjacent layer or an upper layer, or may be differently changed at eachlayer.

At step S720, the decoding apparatus 600 may change the code numbersassigned to the information to be decoded, in order for decodingaccording to the occurrence probability of the information to bedecoded.

At step S730, in the event where it is identified that the node value ofeach layer is determined by the minimum value among the node values ofthe lower layer, the decoding apparatus 600 may reconstruct all the nodevalues of the lower layer than the layer having the maximum node valueby the maximum value.

At step S730, in the event where it is identified that the node value ofeach layer is determined by the maximum value among the node values ofthe lower layer, the decoding apparatus 600 may reconstruct all the nodevalues of the lower layer than the layer having the minimum node valueby the minimum value.

At step S730, upon decoding the node value of the uppermost layer, thedecoding apparatus 600 may reconstruct the node value of the uppermostlayer by setting the node value of the upper layer of the uppermostlayer to a predetermined value.

As described above, according to the first embodiment of the presentdisclosure, the compression efficiency may be improved by efficientlycoding the image information to be coded by using the tree structure.

FIG. 8 is a block diagram schematically showing an encoding apparatususing a tree structure according to a second embodiment of the presentdisclosure.

The encoding apparatus 800 using the tree structure according to thesecond embodiment of the present disclosure may include a tree encoder810 and an additional information encoder 820 both for variably sizedblocks.

The tree encoder 810 for the variably sized block groups areas havingthe same information among predetermined areas having the imageinformation to be encoded, and encodes one or more of a node value and aflag for indicating whether or not a node of each layer is divided.

The additional information encoder 820 for the variably sized blockencodes additional information, including information on the maximumnumber of layers in the tree structure according to the secondembodiment and information on the size of area indicated by each node ofthe lowermost layer. The encoded additional information is included in aheader of a bit stream. The header of the bit stream may be a sequenceheader, a picture header, a slice header, a macroblock header, and thelike.

The process of encoding the information to be encoded by using the treestructure will be described below in detail with reference to FIGS. 9and 10.

FIGS. 9A to 9C are an exemplary diagram showing the tree structureaccording to the second embodiment of the present disclosure.

FIG. 9A shows areas having the information to be encoded within a singlepicture. In FIG. 9A, each area may be a 16×16 pixel macroblock. A, B andC, which are indicated within each area, represent information to beencoded in each area. Such information may be a motion vector precision,but is not limited thereto, and may be various pieces of information,such as partition type information, intra prediction mode, orcoefficient information. In the second embodiment, although each area isassumed to be a 16×16 pixel macroblock, the area may also be variousblocks, such as a 64×64 pixel block, a 32×32 pixel block, a 16×32 pixelblock, a 16×16 pixel block, a 16×8 pixel block, an 8×8 pixel bock, an8×4 pixel block, a 4×8 pixel block, or a 4×4 pixel block. Moreover, eacharea may have a different size.

FIG. 9B shows the groups of areas having the same information among theareas shown in FIG. 9A. FIG. 9C shows the tree structure of informationon the areas grouped as shown in FIG. 9B. In FIG. 9C, the area indicatedby the lowermost node is a 16×16 macroblock, and the maximum number oflayers in the tree structure is four. Therefore, such additionalinformation is encoded and then included in a header of a relevant area.

FIG. 10 is an exemplary diagram showing the encoding results of toinformation expressed as the tree structure according to the secondembodiment of the present disclosure.

If encoding the information of the tree structure shown in FIG. 9C, afinal bit stream may be obtained as shown in FIG. 10. Whether or not anode is divided into nodes of a lower layer is encoded by a single bit.For example, a bit value ‘1’ represents that the current node is dividedinto the nodes of the lower layer, and a bit value ‘0’ represents thatthe current node is not divided into the nodes of the lower layer. Inthe case of the node of the lowermost layer, whether or not the node isdivided into the nodes of the lower layer is not encoded, and the nodevalues of the node of the lowermost layer are encoded.

In FIG. 9C, since the node of the layer 0 is divided into the nodes ofthe lower layer, the node of the layer 0 is encoded by a bit value ‘1’.Since the node value of the first node of the divided layer 1 is A andthe first node is not divided into the nodes of the lower layer anymore, the first node is encoded by a bit value ‘0’ and the node value Ais encoded. Since the second node of the layer 1 is divided into thenodes of the lower layer, the second node is encoded by a bit value ‘1’.Since the third node of the layer 1 is not divided into the nodes of thelower layer, the third node is encoded by a bit value ‘0’ and the nodevalue B is encoded. Since the last fourth node of the layer 1 is dividedinto the nodes of the lower layer, the last fourth layer is encoded by abit value ‘1’. In the same manner, each node of the layer 2 is encoded.In the layer 3, the maximum number of layers is designated as four inthe header. Therefore, since it can be known that there are no morenodes of the lower layer, only each node value is encoded.

Although each node value is indicated by A, B and C for conveniencesake, each node value is expressed as binary bits. Furthermore, theexample of FIG. 9C shows only two cases: a first case where the node isdivided into the nodes of the lower layer; and a second case where thenode is not divided into the nodes of the lower layer. In thisembodiment, in the case where the node is divided into the nodes of thelower layer, the node is divided into four nodes. Referring to FIG. 9C,the division of the node into the four nodes of the lower layer meansthat the area corresponding to the node of the current layer is dividedinto four equal sub-areas. Alternatively, as shown in FIG. 11, the nodemay be divided into the nodes of the lower layer in various forms. Forexample, the node may not be divided into the nodes of the lower layer.The node may be divided into the nodes of the lower layer in the form oftwo horizontally divided areas. The node may be divided into the nodesof the lower layer in the form of two vertically divided areas. The nodemay be divided into the nodes of the lower layer in the form of fourareas. In this case, information indicating the four division types istransmitted to the decoding apparatus.

If the grouped area is not large, the encoding apparatus 800 may reducethe amount of bits for indicating that there exist the nodes of thelower layer, by encoding a flag indicating that the node of the upperlayer is divided into nodes of a specific layer. For example, in theevent where the maximum number of layers is designated as four in theheader of the bit stream, and the information to be encoded isdistributed as shown in FIG. 12, the areas shown in FIG. 12 may beexpressed by grouping areas having the same information as shown in FIG.13. In this case, the encoding apparatus 800 may encode the flagindicating that the node of the uppermost layer is divided into thenodes of the layer 2 or the layer 3. Therefore, the number of flagsindicating that the node of the upper layer is divided into the nodes ofthe lower layer can be reduced, leading to a reduction in the amount ofbits.

FIG. 14 is a flowchart showing an encoding method using a tree structureaccording to a second embodiment of the present disclosure.

As for the encoding method using the tree structure according to thesecond embodiment of the present disclosure, the encoding apparatus 800groups areas having the same information among predetermined areashaving information to be encoded, and encodes one or more of a nodevalue and a flag indicating whether or not each node of each layer isdivided (step S1410), and encodes additional information, includinginformation on the maximum number of layers and information on the sizeof area indicated by each node of the lowermost layer (step S1420).

At step S1410, if the node is divided, the encoding apparatus 800 mayencode a flag indicating the division of the node. That is, the encodingapparatus 800 may determine whether or not the node of each layer isdivided. If the node is divided, the encoding apparatus 800 may encodeonly the flag indicating that the corresponding node is divided into thenodes of the lower layer, without encoding the corresponding node value.

At step S1410, if the node is not divided, the encoding apparatus 800may encode the node value of the node and the flag indicating that thenode is not divided. That is, the encoding apparatus 800 may determinewhether or not the node of each layer is divided. If the node is notdivided, the encoding apparatus 800 may encode the node value of thecorresponding node as well as the flag indicating that the correspondingnode is not divided into the nodes of the lower layer. The term “nodevalue of the node” means the information possessed by the node. If areashaving the same information are grouped into a single node, the sameinformation is the node value.

At step S1410, if the node is the node of the lowermost layer, theencoding apparatus 800 may encode only the node value of thecorresponding node. That is, the encoding apparatus 800 may determinewhether or not the node to be encoded is the lowermost layer, prior todetermining whether or not the node of each layer is divided. If thecorresponding node is the lowermost layer, the encoding apparatus 800may encode only the node value of the corresponding node, withoutencoding the flag indicating whether or not the corresponding node isdivided.

At step S1420, the encoding apparatus 800 may insert data with encodedadditional information into the header of the bit stream. The header ofthe bit stream may be a header of various encoding units, such as asequence header, a picture header, a slice header, or a macroblockheader.

At step S1410, upon encoding the flag indicating that the node isdivided, the encoding apparatus 800 may encode a flag indicating thatthe node is directly divided into nodes of one or more lower layers.That is, upon encoding the flag indicating whether or not the node isdivided, if the corresponding node is divided into the nodes of thelower layer, the encoding apparatus 800 may encode the flag indicatingthat the corresponding node is subdivided to just a single layer downand may also encode the flag indicating that the corresponding node isdivided into the nodes of two or more lower layers.

FIG. 15 is a block diagram schematically showing a decoding apparatususing a tree structure according to a second embodiment of the presentdisclosure.

The decoding apparatus 1500 using the tree structure according to thesecond embodiment of the present disclosure may include an additionalinformation decoder 1510 and a tree decoder 1520 both for variably sizedblocks.

The additional information decoder 1510 for the variably sized blocksdecodes a bit stream to reconstruct additional information, includinginformation on the maximum number of layers and information on the sizeof area indicated by each node of the lowermost layer. The tree decoder1520 for the variably sized block uses the reconstructed additionalinformation to reconstruct the tree structure. In this case, theadditional information decoder 1510 for the variably sized blockextracts data with encoded additional information from a header of thebit stream, and decodes the extracted data to reconstruct the additionalinformation. The header of the bit stream may be a macroblock header, aslice header, a picture header, a sequence header, and the like.

However, the additional information decoder 1510 for the variably sizedblock is not necessarily included in the decoding apparatus 1500, andmay be optionally included according to an implementation scheme ornecessity. For example, in the event where the encoding apparatus 800and the decoding apparatus 1500 are in previous mutual agreement on themaximum number of layers and the size of the area indicated by each nodeof the lowermost layer, the encoding apparatus 800 may not encode theadditional information. Accordingly, the decoding apparatus 1500 alsomay not reconstruct the additional information by decoding the bitstream, but may reconstruct the tree structure by using presetadditional information.

The tree decoder 1520 for the variably sized block decodes the bitstream, based on the additional information, to reconstruct the flagindicating whether or not the node of each layer from the uppermostlayer to the lowermost layer is divided, and reconstructs theinformation by reconstructing the node values of the nodes of each layeraccording to the reconstructed flag. That is, the tree decoder 1520 forthe variably sized block decodes the bit stream, based on the additionalinformation reconstructed by the additional information decoder 1510 forthe variably sized block or the preset additional information. The treedecoder 1520 for the variably sized block determines whether or not thenode of each layer from the uppermost layer to the lowermost layer isdivided. If not divided, the tree decoder 1520 for the variably sizedblock reconstructs the tree structure by reconstructing the node valueof the node, and reconstructs the information to be decoded, based onthe reconstructed tree structure.

The following description will be provided with reference to FIGS. 9 and10 on the process of reconstructing information by the decodingapparatus 1500 through decoding the bit stream by using the treestructure according to the second embodiment of the present disclosure.

The decoding apparatus 1500 extracts encoded additional information froma macroblock header, slice header, picture header, or sequence header ofthe bit stream, and decodes the extracted additional information toreconstruct the additional information. The additional informationincludes information on the maximum number of layers in the treestructure, and information on the size of area indicated by each node ofthe lowermost layer.

The decoding apparatus 1500 extracts a bit string, such as the finalbits of FIG. 10, from the bit stream. Then, as described above, thedecoding apparatus 1500 reconstructs the tree structure based on thereconstructed additional information and the extracted bit string, asexemplarily shown in FIG. 10.

For example, the decoding apparatus 1500 sequentially reads the bitvalues from the bit string of the final bits extracted from the bitstream, and reconstructs the flag indicating whether or not the node ofeach layer from the uppermost layer to the lowermost layer is dividedinto the nodes of the lower layer. If the reconstruct flag indicatesthat the node is not divided into the nodes of the lower layer, thedecoding apparatus 1500 reads a next bit string and reconstructs thenode value of the corresponding node. The reconstructed node value isinformation to be decoded. In addition, if the reconstructed flagindicates that the node is divided into the nodes of the lower layer,the decoding apparatus 1500 reads a next bit value and reconstructs theflag indicating whether or not the next node or a next node after a nextlayer is divided into the nodes of the lower layer. In this manner, thedecoding apparatus 1500 sequentially reads the bit string andreconstructs information up to the lowermost layer. Meanwhile, withregard to the node of the lowermost layer, the decoding apparatus 1500does not reconstruct the flag indicating whether or not the node isdivided, and reconstructs only the node value of each node.

In the event where the node is divided into the nodes of the lowerlayer, the node is divided into four nodes, as exemplarily shown in FIG.9C. Referring to FIG. 9C, the division of the node into the four nodesof the lower layer means that the area corresponding to the node of thecurrent layer is divided into four equal sub-areas. Alternatively, asshown in FIG. 11, the node may be divided into the nodes of the lowerlayer in various forms. For example, the node may not be divided intothe nodes of the lower layer. The node may be divided into the nodes ofthe lower layer in the form of two horizontally divided areas. The nodemay be divided into the nodes of the lower layer in the form of twovertically divided areas. The node may be divided into the nodes of thelower layer in the form of four areas. In this case, informationindicating the four division types is transmitted from the encodingapparatus to the decoding apparatus 1500.

In this manner, the decoding apparatus 1500 reconstructs the treestructure as shown in FIG. 9C by reconstructing the information from theuppermost layer to the lowermost layer, and reconstructs the informationon each area shown in FIGS. 9B and 9A, based on the reconstructed treestructure.

If the flag reconstructed by extracting data from the bit string of thebit stream and decoding the extracted data indicates that the node of acertain layer is directly divided into nodes of two or more lowerlayers, the decoding apparatus 1500 skips the decoding on the layerbetween the indicated layers, and decodes one or more of the node valueof the corresponding node and the flag indicating whether or not thenode of the indicated lower layer is divided.

FIG. 16 is a flowchart showing a decoding method using a tree structureaccording to a second embodiment of the present disclosure.

As for the decoding method using the tree structure according to thesecond embodiment of the present disclosure, the decoding apparatus 1500decodes the bit stream to reconstruct additional information, includinginformation on the maximum number of layers and information on the sizeof area indicated by each node of the lowermost layer (step S1610). Thedecoding apparatus 1500 decodes the bit string extracted from the bitstream, based on the additional information, to reconstruct the flagindicating whether or not the node of each layer from the uppermostlayer to the lowermost layer is divided, and reconstructs information byreconstructing the node value of the node of each layer according to thereconstructed flag (step S1620).

At step S1620, if the flag indicates that the node is not divided intothe nodes of the lower layer, the decoding apparatus 150 may reconstructthe node value of the node. That is, the decoding apparatus 1500reconstructs the flag indicating whether or not the node of each layeris divided, decodes a next node if the reconstructed flag indicates thatthe node of the corresponding node is divided into the nodes of thelower layer, and reconstructs the node value of the corresponding nodeonly when the reconstructed flag indicates that the node of thecorresponding node is not divided into the nodes of the lower layer.

In the event where the node is divided into the nodes of the lowerlayer, the node is divided into four nodes, as exemplarily shown in FIG.9C. Alternatively, as shown in FIG. 11, the node may be divided into thenodes of the lower layer in various forms. For example, the node may notbe divided into the nodes of the lower layer. The node may be dividedinto the nodes of the lower layer in the form of two horizontallydivided areas. The node may be divided into the nodes of the lower layerin the form of two vertically divided areas. The node may be dividedinto the nodes of the lower layer in the form of four areas. In thiscase, information indicating the four division types is transmitted tothe decoding apparatus 1500.

At step S1620, the decoding apparatus 1500 may reconstruct only the nodevalue of each node of the lowermost layer. That is, the decodingapparatus 1500 determines in advance whether or not the node to bedecoded is included in the lowermost layer in the process ofreconstructing the flag for indicating whether or not the node of eachlayer is divided and/or the node value of the node. If the node to bedecoded is included in the lowermost layer, the decoding apparatus 1500reconstructs only the node value of the corresponding node, withoutreconstructing the flag indicating whether or not the corresponding nodeis divided.

In the encoding/decoding method using the tree structure according tothe embodiments of the present disclosure, the information to be encodedand decoded is not limited to the data suggested in the embodiments butmay be applied to the encoding and decoding of a variety of informationsuggested in the following.

The information to be encoded may include information on image signalsor various pieces of information used for encoding the image signals,such as macroblock size and macroblock type information, macroblockpartition information indicating the size and type of subblocks forprediction and transform, intra prediction information, motion vector,motion vector prediction direction, optimal motion vector predictioncandidates, optimal interpolation filters of arbitrarily sized areas,use or non-use of image enhancement filters, reference picture index,quantization matrix index, optimal motion vector precision and transformsize information, image pixel information, coded block information orcoefficient information indicating whether or not transform coefficientother than zero exists within a predetermined block.

In the embodiment of the present disclosure, the macroblock has variablesizes as a default unit of video encoding and decoding. The macroblocksize information may be encoded by using the tree structure according tothe embodiment of the present disclosure. To this end, the encodingapparatus according to the embodiment of the present disclosuregenerates information on the maximum size and minimum size of themacroblock, information on the maximum number of layers constituting thetree, and the macroblock division partition flag, and transmits thegenerated information to the decoding apparatus. The information on themaximum size and minimum size of the macroblock and the information onthe maximum number of the layers constituting the tree may be includedin the bit stream as the header information of the sequence, group ofpictures (GOP), picture, slice, and the like.

As shown in FIG. 9C or 10, the macroblock division flag may be encodedby using the tree structure and included in the header of the encodingunit. In other words, the information encoded and decoded by using thetree structure according to the embodiment of the present disclosure isthe above-described macroblock division flag.

The maximum and minimum sizes of macroblocks may be set with thehorizontal and vertical sizes determined separately so as to permit useof arbitrarily sized macroblocks. Furthermore, the maximum and minimumsizes of the macroblocks to be encoded may be assigned actual sizes, ora magnification ratio may be transmitted for instructing to multiply orreduce a predetermined size by certain times. To encode themagnification ratio for generating the maximum macroblock size throughmultiplying the predetermined size by the certain times which areselected to be 16, the value of log₂ (selected MBsize/16) is encoded.For example, if the macroblock size is 16×16, 0 is encoded. If themacroblock size is 32×32, 1 is encoded. Moreover, the ratios of thehorizontal and vertical sizes may be separately encoded.

Alternatively, after encoding the maximum macroblock size value throughthe above-described method, the minimum size value of the macroblock maybe encoded by using the value of log₂ (maximum macroblock size/minimummacroblock size) indicating the ratio of the maximum macroblock size tothe minimum macroblock size. On the contrary, after encoding the minimumblock size value through the above-described method, the maximummacroblock size value may be encoded by using the value of log₂ (maximummacroblock size/minimum macroblock size).

Moreover, according to an embodiment of the present disclosure, themacroblock partition information may be encoded and decoded by using thetree structure according to the present disclosure. The macroblockpartition information may include information on the maximum size andminimum size of the subblock for prediction and/or transform,information on the maximum number of layers constituting the tree, andthe macroblock partition division flag, as information related to thesize and/or type of subblocks (that is, macroblock partitions) forprediction and/or transform. The encoding apparatus according to theembodiment of the present disclosure transmits the macroblock partitioninformation to the decoding apparatus.

The maximum and minimum sizes of the subblock for prediction and/ortransform may be determined in units of an entire picture sequence, GOP,picture, or slice. The information on the maximum and minimum sizes ofthe subblock for prediction and/or transform and the information on themaximum number of layers constituting the tree may be included in thebit stream as the header information of the sequence, GOP, picture, orslice.

On the other hand, macroblock partition division flag among themacroblock partition information may be encoded by using the treestructure according to the embodiment of the present disclosure. Themacroblock partition division flag may be included in the header of themacroblock or the header of the macroblock partition corresponding tothe encoding unit.

Moreover, with regard to the subblock size for prediction and/ortransform, that is, prediction and/or transform size information, thehorizontal and vertical sizes of the maximum and minimum predictionand/or transform size may be separately set. Therefore, predictionand/or transform having arbitrary sizes may be used. Additionally, themaximum and minimum sizes of the available prediction and/or transformmay be assigned actual sizes, or a magnification ratio may betransmitted for instructing to multiply or reduce a predetermined sizeby certain times. To encode the magnification ratio for generating themaximum prediction and/or transform size through multiplying thepredetermined size by the certain times which are selected to be 4, thevalue of log₂ (selected prediction and/or transform/4) is encoded. Forexample, if the prediction and/or transform size is 4×4, 0 is encoded.If the prediction and/or transform size is 8×8, 1 is encoded. Moreover,the ratios of the horizontal and vertical sizes may be separatelyencoded.

Alternatively, after encoding the value of the maximum prediction and/ortransform size through the above-described method, the value of theminimum prediction and/or transform size may be encoded by using thevalue of log₂ (maximum prediction and/or transform size/minimumprediction and/or transform size) indicating the ratio of the maximumprediction and/or transform size to the minimum prediction and/ortransform size. On the contrary, after encoding the value of the minimumprediction and/or transform size through the above-described method, thevalue of the maximum prediction and/or transform size may be encoded byusing the value of log₂ (maximum prediction and/or transformsize/minimum prediction and/or transform size).

The coded block information indicating whether or not non-zero transformcoefficient exists within a predetermined block may be 1-bit flagindicating whether or not non-zero transform coefficient exists within asubblock divided for prediction or transform. In this case, differentflags may be encoded with respect to a luma component (Y) block andchroma component (U, V) blocks. With respect to the three blocks of theluma and chroma components (Y, U, V), whether or not non-zero transformcoefficients exist may be indicated by a single flag.

Alternatively, after encoding the flag indicating whether or not thenon-zero transform coefficients exist within all blocks of the threecomponents (Y, U, V), the transform type may be encoded only when thenon-zero transform coefficient exists, and then, the flags indicatingwhether or not the non-zero transform coefficient exists within thesubblocks of the respective chroma components may be encoded,respectively.

According to the above-described embodiments of the present disclosure,the tree encoder generates the tree structure of the image informationto be encoded by grouping areas having the same information among areashaving image information to be encoded. However, this is merely anexample of generating the tree structure, and it is apparent to thoseskilled in the art that the tree structure may be generated in variousmanners. For example, the size of the macroblock being theencoding/decoding unit or the size of the subblock for prediction ortransform may be determined by repetitively dividing a reference block(for example, a macroblock of the maximum size) into subblocks ofsmaller sizes. In other words, macroblocks of various sizes or subblocksfor prediction or transform may be included in a single picture bydividing the reference block into a plurality of first subblocks,subdividing the first subblocks into second subblocks of smaller sizes,or not subdividing the first subblocks. In this case, whether or not theblock is divided into the subblocks is indicated by the division flag.In this manner, the macroblock size information (that is, macroblockdivision flag) or the subblock size information for prediction ortransform (that is, macroblock partition division flag) has the treestructure as shown in FIG. 9B or 9C.

Although exemplary embodiments of the present disclosure have beendescribed for illustrative purposes, those skilled in the art willappreciate that various modifications, additions and substitutions arepossible, without departing from essential characteristics of thedisclosure. Therefore, exemplary aspects of the present disclosure havenot been described for limiting purposes. Accordingly, the scope of thedisclosure is not to be limited by the above aspects but by the claimsand the equivalents thereof.

INDUSTRIAL APPLICABILITY

As described above, the present disclosure is highly useful forapplication in a video compression processing for encoding and decodingimages, which are capable of improving the encoding efficiency and inturn the video compression efficiency by using the tree structure in theencoding of various pieces of image information and the decoding of theresultant encoded data.

What is claimed is:
 1. A method performed by a video encoding apparatusfor encoding image information using a tree structure, the methodcomprising: encoding additional information including first informationon a minimum block size and second information on a difference betweenthe minimum block size and a maximum block size; and encoding apartition flag indicating whether each block, starting from a blockcorresponding to an uppermost layer of the tree structure, is dividedinto blocks of a lower layer, and encoding image information of a blockwhich is not further divided, wherein the block corresponding to theuppermost layer has the maximum block size, wherein the first and secondinformation are used for identifying the maximum block size.
 2. Themethod of claim 1, wherein, when a block of an upper layer is dividedinto blocks of a lower layer, the block of the upper layer is dividedinto four equal-sized blocks.
 3. The method of claim 1, wherein thepartition flag indicating whether a block having the minimum block sizeis divided is not included in the bitstream.
 4. The method of claim 1,wherein the additional information is included as sequence information.5. The method of claim 1, wherein the image information includesprediction information and information on residuals needed forreconstructing pixels of the block which is not further divided.
 6. Avideo encoding apparatus for encoding image information using a treestructure, the apparatus comprising: an additional information encoderconfigured to encode additional information including first informationon a minimum block size and second information on a difference betweenthe minimum block size and a maximum block size; and a tree encoderconfigured to encode a partition flag indicating whether each block,starting from a block corresponding to an uppermost layer of the treestructure, is divided into blocks of a lower layer, and encode imageinformation of a block which is not further divided, wherein the blockcorresponding to the uppermost layer has the maximum block size, whereinthe first and second information are used for identifying the maximumblock size.
 7. The apparatus of claim 6, wherein, when a block of anupper layer is divided into blocks of a lower layer, the block of theupper layer is divided into four equal-sized.
 8. The apparatus of claim6, wherein the partition flag indicating whether a block having theminimum block size is divided is not included in the bitstream.
 9. Theapparatus of claim 6, wherein the additional information is included assequence information.
 10. The apparatus of claim 6, wherein the imageinformation includes prediction information and information on residualsused for reconstructing pixels of the block which is not furtherdivided.